In general, static relationships are those that must always hold during a turn. Xconq will usually only test these when necessary, but this is up to the implementation. From the players' and designers' point of view, these relationships can never be violated, even temporarily.
A unit inside another unit is an "occupant" in a "transport", even if the "transport" can never move. There are two kinds of capacity. Generic capacity is shared by all different types, while guaranteed capacity is for a particular type only.
UnitTypeProperty: capacity
n
This property is the limit on the sum of sizes of units that may occupy this type of unit, not counting the exclusive capacities.
Table: unit-size-as-occupant
u1 u2 -> n
This table is the "size" of a (full-sized) unit u1 when it is in
a transport u2.
Defaults to 1
.
Table: unit-capacity-x
u1 u2 -> n
This table is the number of units of type u2 that are guaranteed a place in a unit of type u1.
Table: occupant-max
u1 u2 -> n
This table is the upper limit on the number of occupants of this type
(not counting unit-capacity-x
).
UnitTypeProperty: occupant-total-max
n
This property is the upper limit on occupants of all types together.
Defaults to -1
, which allows unlimited occupancy.
A unit that is an occupant may not always have the same capabilities as when it is out in the open. Its vision, combat, construction, and capacity may be affected.
Table: occupant-vision
u1 u2 -> t/f
Table: occupant-combat
u1 u2 -> n%
This table defines the effect on the combat abilities
of a unit of type u1 when an occupant in a unit of type u2.
If 0
, then the occupant cannot attack or fire.
Defaults to 100
.
Table: occupant-can-construct
u1 u2 -> t/f
This table is true
if u1 can
create or complete units while an occupant of u2.
Defaults to false
.
Table: occupant-can-have-occupants
u1 u2 -> t/f
This table is true
if u1 can have occupants of its own
while an occupant of u2.
Defaults to false
.
This section describes relationships between units and terrain. Units can be set to disappear or be wrecked on particular types of terrain. If the terrain can be occupied safely, there may be a limit on the numbers of units that can be in the same cell.
Table: vanishes-on
u t -> t/f
This table is true
if a unit u will disappear instantly if it
somehow ends up on terrain of type t.
Defaults to false
.
Table: wrecks-on
u t -> t/f
This table is true
if a unit u will wreck instantly if it
somehow ends up on terrain of type t.
Defaults to false
.
TerrainTypeProperty: capacity
n
This property is the limit on the sum of unit sizes that may share this cell.
Defaults to 1
.
Table: unit-size-in-terrain
u t -> n
This table is the "size" of a (full-sized) unit u when it is
in/on the terrain t.
Defaults to 1
.
Table: terrain-capacity-x
u t -> n
This table is the number of (full-sized) units of type u that are guaranteed to have a place in the cell.
Note that the units' sides are irrelevant; the sizes of units of all sides are added together. Limits are calculated separately for the connection and open terrain in a cell; however, it is possible for a unit in a cell to override any capacity due to connections in that cell.
Table: capacity-negation
u t -> t/f
UnitTypeProperty: stack-order
n
This property is the relative position of this type of unit within a stack of different units. Larger values put units higher in the stack. The exact values are unimportant, they are just used as sort keys. The use of this value is to ensure that particular types are "seen first" when looking at a cell, so for instance if a truck and a city are stacked on the same cell, everybody will see the city and not the truck. The owner of these units can still see them. If the stack-order of two units is the same, then the higher-numbered type will be higher in the stack.
There is a possible bizarrity with stacking limits and units that can't see each other when in the same hex, namely that a player could be prevented from moving a unit into a cell that looks like it has enough room.
Units can carry materials.
Table: unit-storage-x
u m -> n
This table is the space reserved specifically for each type of material.
Materials that represent people may surrender to a unit in their cell.
Table: people-surrender-chance
u t -> n%
This table is the base chance that people in terrain of type t will change sides if a unit of type u is in their cell.
Table: people-surrender-effect
u m -> n
This is a multiplier that takes the people type into account.
Defaults to 100
.
Table: terrain-storage-x
t m -> n
This table is the maximum amount of a material m that may be present in a cell with terrain t.
The parameters in this section define how sides get information about the world, units, and other sides.